export type RuleType = 'condition' | 'transform';

export interface Rule<T, U = T> {
  type: RuleType;
  fn: (node: T) => U | boolean;
}

export type TypeGuard<T, U extends T> = (node: T) => node is U;
